home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / atmbr2684.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  3KB  |  117 lines

  1. #ifndef _LINUX_ATMBR2684_H
  2. #define _LINUX_ATMBR2684_H
  3.  
  4. #include <linux/atm.h>
  5. #include <linux/if.h>        /* For IFNAMSIZ */
  6.  
  7. /*
  8.  * Type of media we're bridging (ethernet, token ring, etc)  Currently only
  9.  * ethernet is supported
  10.  */
  11. #define BR2684_MEDIA_ETHERNET    (0)    /* 802.3 */
  12. #define BR2684_MEDIA_802_4    (1)    /* 802.4 */
  13. #define BR2684_MEDIA_TR        (2)    /* 802.5 - token ring */
  14. #define BR2684_MEDIA_FDDI    (3)
  15. #define BR2684_MEDIA_802_6    (4)    /* 802.6 */
  16.  
  17.                     /* used only at device creation:  */
  18. #define BR2684_FLAG_ROUTED    (1<<16)    /* payload is routed, not bridged */
  19.  
  20. /*
  21.  * Is there FCS inbound on this VC?  This currently isn't supported.
  22.  */
  23. #define BR2684_FCSIN_NO        (0)
  24. #define BR2684_FCSIN_IGNORE    (1)
  25. #define BR2684_FCSIN_VERIFY    (2)
  26.  
  27. /*
  28.  * Is there FCS outbound on this VC?  This currently isn't supported.
  29.  */
  30. #define BR2684_FCSOUT_NO    (0)
  31. #define BR2684_FCSOUT_SENDZERO    (1)
  32. #define BR2684_FCSOUT_GENERATE    (2)
  33.  
  34. /*
  35.  * Does this VC include LLC encapsulation?
  36.  */
  37. #define BR2684_ENCAPS_VC    (0)    /* VC-mux */
  38. #define BR2684_ENCAPS_LLC    (1)
  39. #define BR2684_ENCAPS_AUTODETECT (2)    /* Unsuported */
  40.  
  41. /*
  42.  * Is this VC bridged or routed?
  43.  */
  44.  
  45. #define BR2684_PAYLOAD_ROUTED   (0)
  46. #define BR2684_PAYLOAD_BRIDGED  (1)
  47.  
  48. /*
  49.  * This is for the ATM_NEWBACKENDIF call - these are like socket families:
  50.  * the first element of the structure is the backend number and the rest
  51.  * is per-backend specific
  52.  */
  53. struct atm_newif_br2684 {
  54.     atm_backend_t backend_num;    /* ATM_BACKEND_BR2684 */
  55.     int media;        /* BR2684_MEDIA_*, flags in upper bits */
  56.     char ifname[IFNAMSIZ];
  57.     int mtu;
  58. };
  59.  
  60. /*
  61.  * This structure is used to specify a br2684 interface - either by a
  62.  * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
  63.  */
  64. #define BR2684_FIND_BYNOTHING    (0)
  65. #define BR2684_FIND_BYNUM    (1)
  66. #define BR2684_FIND_BYIFNAME    (2)
  67. struct br2684_if_spec {
  68.     int method;        /* BR2684_FIND_* */
  69.     union {
  70.         char ifname[IFNAMSIZ];
  71.         int devnum;
  72.     } spec;
  73. };
  74.  
  75. /*
  76.  * This is for the ATM_SETBACKEND call - these are like socket families:
  77.  * the first element of the structure is the backend number and the rest
  78.  * is per-backend specific
  79.  */
  80. struct atm_backend_br2684 {
  81.     atm_backend_t backend_num;    /* ATM_BACKEND_BR2684 */
  82.     struct br2684_if_spec ifspec;
  83.     int fcs_in;        /* BR2684_FCSIN_* */
  84.     int fcs_out;        /* BR2684_FCSOUT_* */
  85.     int fcs_auto;        /* 1: fcs_{in,out} disabled if no FCS rx'ed */
  86.     int encaps;        /* BR2684_ENCAPS_* */
  87.     int has_vpiid;        /* 1: use vpn_id - Unsupported */
  88.     __u8 vpn_id[7];
  89.     int send_padding;    /* unsupported */
  90.     int min_size;        /* we will pad smaller packets than this */
  91. };
  92.  
  93. /*
  94.  * The BR2684_SETFILT ioctl is an experimental mechanism for folks
  95.  * terminating a large number of IP-only vcc's.  When netfilter allows
  96.  * efficient per-if in/out filters, this support will be removed
  97.  */
  98. struct br2684_filter {
  99.     __be32 prefix;        /* network byte order */
  100.     __be32 netmask;        /* 0 = disable filter */
  101. };
  102.  
  103. struct br2684_filter_set {
  104.     struct br2684_if_spec ifspec;
  105.     struct br2684_filter filter;
  106. };
  107.  
  108. enum br2684_payload {
  109.     p_routed = BR2684_PAYLOAD_ROUTED,
  110.     p_bridged = BR2684_PAYLOAD_BRIDGED,
  111. };
  112.  
  113. #define BR2684_SETFILT    _IOW( 'a', ATMIOC_BACKEND + 0, \
  114.                 struct br2684_filter_set)
  115.  
  116. #endif /* _LINUX_ATMBR2684_H */
  117.